package com.ynet.middleground.user.bean;

import com.ynet.core.common.BaseReqObj;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * @program: 2019-10-12_userCenter
 * @description: 登录验密请求对象
 * @author: DaiGaoLe
 * @create: 2019-10-22 17:59
 **/
@Data
@ApiModel(value = "登录验密请求对象", description = "登录验密请求对象")
    public class LoginVerificationReq extends BaseReqObj {

    private static final long serialVersionUID = -4034739454835760839L;
    /**
     * 操作类型(0 - 密码登录,1 - 手机号登录,2 - 员工工号登录,3 - 手机号密码登录)
     */
    @ApiModelProperty(value = "操作类型(0 - 密码登录,1 - 手机号登录,2 - 员工工号登录,3 - 手机号密码登录)", notes = "操作类型(0 - 密码登录,1 - 手机号登录,2 - 员工工号登录,3 - 手机号密码登录)", dataType = "String",required = true)
    @NotEmpty(message = "操作类型不能为空")
    private String operationType;

    /**
     * 用户类型,0-企业用户，1-港内员工用户，2-个人用户，3企业员工用户，当1-手机号登录时，根据登录的实际类型上送。
     */
    @ApiModelProperty(value = "用户类型,1-港内员工用户，2-个人用户，3企业员工用户，当1-手机号登录时，根据登录的实际类型上送。",
            notes = "用户类型,1-港内员工用户，2-个人用户，3企业员工用户，当1-手机号登录时，根据登录的实际类型上送。", dataType = "String")
    private String userType;

    /**
     * 用户账号，当操作类型为0-密码登录时，用户账号不能为空。
     */
    @ApiModelProperty(value = "用户账号,当操作类型为0-密码登录时，用户账号不能为空。", notes = "用户账号,当操作类型为0-密码登录时，用户账号不能为空。", dataType = "String")
    private String userAccounts;

    /**
     * 用户名称，当操作类型为1-手机号登录,3-手机号密码登录时，用户名称不能为空。
     */
    @ApiModelProperty(value = "用户名称", notes = "用户名称", dataType = "String")
    private String userName;
    
    /**
     * 所属企业id
     */
    @ApiModelProperty(value = "所属企业id(即企业客户的userId)，当用户类型为3企业员工且作类型为1-手机号登录,3-手机号密码登录时不能为空", notes = "所属企业id(即企业客户的userId)，当用户类型为3企业员工且作类型为1-手机号登录,3-手机号密码登录时不能为空", dataType = "Integer")
    private Integer enterpriseId;

    /**
     * 密码，当操作类型为0-密码登录、2-员工工号和3-手机号密码登录时，密码不能为空。
     */
    @ApiModelProperty(value = "密码，当操作类型为0-密码登录、2员工工号和3-手机号密码登录时，密码不能为空。",
            notes = "密码，当操作类型为0-密码登录、2员工工号和3-手机号密码登录时，密码不能为空。", dataType = "String")
    private String loginPassword;

    /**
     * 手机号，当操作类型1-手机号登录和3-手机密码登录时，手机号不能为空。
     */
    @ApiModelProperty(value = "手机号，当操作类型1-手机号登录和3-手机密码登录时，手机号不能为空。", notes = "手机号，当操作类型1-手机号登录和3-手机密码登录时，手机号不能为空。", dataType = "String")
    private String telephone;

    /**
     * 员工工号，当操作类型2-员工工号等候时，员工工号不能为空。
     */
    @ApiModelProperty(value = "员工工号，当操作类型2-员工工号等候时，员工工号不能为空。", notes = "员工工号，当操作类型2-员工工号等候时，员工工号不能为空。", dataType = "String")
    private String employeeNo;

    /**
     * 系统生成验证码，当操作类型1-手机号登录时，系统生成验证码不能为空。
     */
    @ApiModelProperty(value = "系统生成验证码，当操作类型1-手机号登录时，系统生成验证码不能为空。", notes = "系统生成验证码，当操作类型1-手机号登录时，系统生成验证码不能为空。", dataType = "String")
    private String verificationCode;

    /**
     * 用户输入验证码，当操作类型1-手机号登录时，用户输入验证码不能为空。
     */
    @ApiModelProperty(value = "用户输入验证码，当操作类型1-手机号登录时，用户输入验证码不能为空。", notes = "用户输入验证码，当操作类型1-手机号登录时，用户输入验证码不能为空。", dataType = "String")
    private String importVerificationCode;
}
